<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/linux/kmemleak.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/linux/kmemleak.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="k">/*</span>
<a name="2" /><span class="True">       2:</span> <span class="k"> * include/linux/kmemleak.h</span>
<a name="3" /><span class="True">       3:</span> <span class="k"> *</span>
<a name="4" /><span class="True">       4:</span> <span class="k"> * Copyright (C) 2008 ARM Limited</span>
<a name="5" /><span class="True">       5:</span> <span class="k"> * Written by Catalin Marinas &lt;catalin.marinas@arm.com&gt;</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> *</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> * This program is free software; you can redistribute it and/or modify</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> * it under the terms of the GNU General Public License version 2 as</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> * published by the Free Software Foundation.</span>
<a name="10" /><span class="True">      10:</span> <span class="k"> *</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> * This program is distributed in the hope that it will be useful,</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="13" /><span class="True">      13:</span> <span class="k"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<a name="14" /><span class="True">      14:</span> <span class="k"> * GNU General Public License for more details.</span>
<a name="15" /><span class="True">      15:</span> <span class="k"> *</span>
<a name="16" /><span class="True">      16:</span> <span class="k"> * You should have received a copy of the GNU General Public License</span>
<a name="17" /><span class="True">      17:</span> <span class="k"> * along with this program; if not, write to the Free Software</span>
<a name="18" /><span class="True">      18:</span> <span class="k"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>
<a name="19" /><span class="True">      19:</span> <span class="k"> */</span>
<a name="20" /><span class="True">      20:</span> 
<a name="21" /><span class="True">      21:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X19LTUVNTEVBS19IXzA_"><span class="b">__KMEMLEAK_H</span></a>
<a name="22" /><span class="True">      22:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X19LTUVNTEVBS19IXzA_"><span class="b">__KMEMLEAK_H</span></a>
<a name="23" /><span class="True">      23:</span> 
<a name="24" /><span class="False">      24:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_DEBUG_KMEMLEAK</span>
<a name="25" /><span class="False">      25:</span> 
<a name="26" /><span class="False">      26:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">kmemleak_init</span><span class="f">(</span><span class="m">void</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a><span class="f">;</span>
<a name="27" /><span class="False">      27:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">kmemleak_alloc</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">,</span> <span class="m">int</span> <span class="b">min_count</span><span class="f">,</span>
<a name="28" /><span class="False">      28:</span>                <span class="b">gfp_t</span> <span class="b">gfp</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a><span class="f">;</span>
<a name="29" /><span class="False">      29:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">kmemleak_alloc_percpu</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <a href="cpu.c_macros_ref.html#_X19wZXJjcHVfMA__"><span class="b">__percpu</span></a> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a><span class="f">;</span>
<a name="30" /><span class="False">      30:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">kmemleak_free</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a><span class="f">;</span>
<a name="31" /><span class="False">      31:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">kmemleak_free_part</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a><span class="f">;</span>
<a name="32" /><span class="False">      32:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">kmemleak_free_percpu</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <a href="cpu.c_macros_ref.html#_X19wZXJjcHVfMA__"><span class="b">__percpu</span></a> <span class="f">*</span><span class="b">ptr</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a><span class="f">;</span>
<a name="33" /><span class="False">      33:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">kmemleak_padding</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">offset</span><span class="f">,</span>
<a name="34" /><span class="False">      34:</span>                  <span class="b">size_t</span> <span class="b">size</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a><span class="f">;</span>
<a name="35" /><span class="False">      35:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">kmemleak_not_leak</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a><span class="f">;</span>
<a name="36" /><span class="False">      36:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">kmemleak_ignore</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a><span class="f">;</span>
<a name="37" /><span class="False">      37:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">kmemleak_scan_area</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">,</span> <span class="b">gfp_t</span> <span class="b">gfp</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a><span class="f">;</span>
<a name="38" /><span class="False">      38:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">kmemleak_no_scan</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">)</span> <a href="cpu.c_macros_ref.html#_X19yZWZfMA__"><span class="b">__ref</span></a><span class="f">;</span>
<a name="39" /><span class="False">      39:</span> 
<a name="40" /><span class="False">      40:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_alloc_recursive</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">,</span>
<a name="41" /><span class="False">      41:</span>                         <span class="m">int</span> <span class="b">min_count</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">flags</span><span class="f">,</span>
<a name="42" /><span class="False">      42:</span>                         <span class="b">gfp_t</span> <span class="b">gfp</span><span class="f">)</span>
<a name="43" /><span class="False">      43:</span> <span class="f">{</span>
<a name="44" /><span class="False">      44:</span>     <span class="m">if</span> <span class="f">(</span><span class="f">!</span><span class="f">(</span><span class="b">flags</span> <span class="f">&amp;</span> <a href="cpu.c_macros_noref.html#_U0xBQl9OT0xFQUtUUkFDRV8w"><span class="b">SLAB_NOLEAKTRACE</span></a><span class="f">)</span><span class="f">)</span>
<a name="45" /><span class="False">      45:</span>         <span class="b">kmemleak_alloc</span><span class="f">(</span><span class="b">ptr</span><span class="f">,</span> <span class="b">size</span><span class="f">,</span> <span class="b">min_count</span><span class="f">,</span> <span class="b">gfp</span><span class="f">)</span><span class="f">;</span>
<a name="46" /><span class="False">      46:</span> <span class="f">}</span>
<a name="47" /><span class="False">      47:</span> 
<a name="48" /><span class="False">      48:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_free_recursive</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">flags</span><span class="f">)</span>
<a name="49" /><span class="False">      49:</span> <span class="f">{</span>
<a name="50" /><span class="False">      50:</span>     <span class="m">if</span> <span class="f">(</span><span class="f">!</span><span class="f">(</span><span class="b">flags</span> <span class="f">&amp;</span> <a href="cpu.c_macros_noref.html#_U0xBQl9OT0xFQUtUUkFDRV8w"><span class="b">SLAB_NOLEAKTRACE</span></a><span class="f">)</span><span class="f">)</span>
<a name="51" /><span class="False">      51:</span>         <span class="b">kmemleak_free</span><span class="f">(</span><span class="b">ptr</span><span class="f">)</span><span class="f">;</span>
<a name="52" /><span class="False">      52:</span> <span class="f">}</span>
<a name="53" /><span class="False">      53:</span> 
<a name="54" /><span class="False">      54:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_erase</span><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="f">*</span><span class="b">ptr</span><span class="f">)</span>
<a name="55" /><span class="False">      55:</span> <span class="f">{</span>
<a name="56" /><span class="False">      56:</span>     <span class="f">*</span><span class="b">ptr</span> <span class="f">=</span> <a href="cpu.c_macros_ref.html#_TlVMTF8w"><span class="b">NULL</span></a><span class="f">;</span>
<a name="57" /><span class="False">      57:</span> <span class="f">}</span>
<a name="58" /><span class="False">      58:</span> 
<a name="59" /><span class="True">      59:</span> <span class="f">#</span><span class="n">else</span>
<a name="60" /><span class="True">      60:</span> 
<a name="61" /><span class="True">      61:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_init</span><span class="f">(</span><span class="m">void</span><span class="f">)</span>
<a name="62" /><span class="True">      62:</span> <span class="f">{</span>
<a name="63" /><span class="True">      63:</span> <span class="f">}</span>
<a name="64" /><span class="True">      64:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_alloc</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">,</span> <span class="m">int</span> <span class="b">min_count</span><span class="f">,</span>
<a name="65" /><span class="True">      65:</span>                   <span class="b">gfp_t</span> <span class="b">gfp</span><span class="f">)</span>
<a name="66" /><span class="True">      66:</span> <span class="f">{</span>
<a name="67" /><span class="True">      67:</span> <span class="f">}</span>
<a name="68" /><span class="True">      68:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_alloc_recursive</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">,</span>
<a name="69" /><span class="True">      69:</span>                         <span class="m">int</span> <span class="b">min_count</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">flags</span><span class="f">,</span>
<a name="70" /><span class="True">      70:</span>                         <span class="b">gfp_t</span> <span class="b">gfp</span><span class="f">)</span>
<a name="71" /><span class="True">      71:</span> <span class="f">{</span>
<a name="72" /><span class="True">      72:</span> <span class="f">}</span>
<a name="73" /><span class="True">      73:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_alloc_percpu</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <a href="cpu.c_macros_ref.html#_X19wZXJjcHVfMA__"><span class="b">__percpu</span></a> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">)</span>
<a name="74" /><span class="True">      74:</span> <span class="f">{</span>
<a name="75" /><span class="True">      75:</span> <span class="f">}</span>
<a name="76" /><span class="True">      76:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_free</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">)</span>
<a name="77" /><span class="True">      77:</span> <span class="f">{</span>
<a name="78" /><span class="True">      78:</span> <span class="f">}</span>
<a name="79" /><span class="True">      79:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_free_part</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">)</span>
<a name="80" /><span class="True">      80:</span> <span class="f">{</span>
<a name="81" /><span class="True">      81:</span> <span class="f">}</span>
<a name="82" /><span class="True">      82:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_free_recursive</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">flags</span><span class="f">)</span>
<a name="83" /><span class="True">      83:</span> <span class="f">{</span>
<a name="84" /><span class="True">      84:</span> <span class="f">}</span>
<a name="85" /><span class="True">      85:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_free_percpu</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <a href="cpu.c_macros_ref.html#_X19wZXJjcHVfMA__"><span class="b">__percpu</span></a> <span class="f">*</span><span class="b">ptr</span><span class="f">)</span>
<a name="86" /><span class="True">      86:</span> <span class="f">{</span>
<a name="87" /><span class="True">      87:</span> <span class="f">}</span>
<a name="88" /><span class="True">      88:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_not_leak</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">)</span>
<a name="89" /><span class="True">      89:</span> <span class="f">{</span>
<a name="90" /><span class="True">      90:</span> <span class="f">}</span>
<a name="91" /><span class="True">      91:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_ignore</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">)</span>
<a name="92" /><span class="True">      92:</span> <span class="f">{</span>
<a name="93" /><span class="True">      93:</span> <span class="f">}</span>
<a name="94" /><span class="True">      94:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_scan_area</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">,</span> <span class="b">size_t</span> <span class="b">size</span><span class="f">,</span> <span class="b">gfp_t</span> <span class="b">gfp</span><span class="f">)</span>
<a name="95" /><span class="True">      95:</span> <span class="f">{</span>
<a name="96" /><span class="True">      96:</span> <span class="f">}</span>
<a name="97" /><span class="True">      97:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_erase</span><span class="f">(</span><span class="m">void</span> <span class="f">*</span><span class="f">*</span><span class="b">ptr</span><span class="f">)</span>
<a name="98" /><span class="True">      98:</span> <span class="f">{</span>
<a name="99" /><span class="True">      99:</span> <span class="f">}</span>
<a name="100" /><span class="True">     100:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">kmemleak_no_scan</span><span class="f">(</span><span class="m">const</span> <span class="m">void</span> <span class="f">*</span><span class="b">ptr</span><span class="f">)</span>
<a name="101" /><span class="True">     101:</span> <span class="f">{</span>
<a name="102" /><span class="True">     102:</span> <span class="f">}</span>
<a name="103" /><span class="True">     103:</span> 
<a name="104" /><span class="True">     104:</span> <span class="f">#</span><span class="n">endif</span>    <span class="k">/* CONFIG_DEBUG_KMEMLEAK */</span>
<a name="105" /><span class="True">     105:</span> 
<a name="106" /><span class="True">     106:</span> <span class="f">#</span><span class="n">endif</span>    <span class="k">/* __KMEMLEAK_H */</span>
<a name="107" /><span class="True">     107:</span> </pre>
  </body>
</html>
